
活塞的基础机制。
玩MC年头多了你就会发现,自动推动方块这件事说白了就是活塞的活儿,但要是只把活塞当推拉的工具就太外行了。我最早入坑红石的时候,以为放个红石火把旁边塞个活塞就能一直推,结果发现那东西推一次就停了。后来才明白活塞需要脉冲信号才能反复动作,而粘性活塞能拉回方块才是自动化的核心。普通活塞推出方块后不会收回,粘性活塞能黏住方块拉回来,但要注意它只能拉一个方块,超过一个就会掉下来。新手最容易犯的错误就是以为粘性活塞能像吸铁石一样吸住一堆东西,实际上它只对直接相邻的那个方块有效。想实现反复推动,你得先学会怎么生成连续脉冲。
红石时钟与脉冲生成。
自动推动的关键在于电流的循环,我常用的一个办法就是做个红石时钟。最简单的是用两个中继器面对面连成一个环形电路,中继器延时调到最大就能产生一秒左右的脉冲,接上活塞就能看到它一伸一缩。但这样有个问题,中继器产生的脉冲宽度固定,如果你想控制推动的节奏,就得换漏斗计时器或者比较器循环。我比较喜欢用观察者配合红石粉做一个单刻脉冲发生器,这样活塞每次只动一瞬,适合快速推方块。要注意的是,高频脉冲容易导致游戏卡顿,尤其是在版本更新后,红石更新机制改了,以前那种高频脉冲现在可能直接炸掉你的电路。老玩家都知道,自动推动不是越快越好,得看你要干什么。
BUD状态与方块检测。
除了定时推动,有时候你需要方块自己感知周围变化再移动,这时候BUD就登场了。BUD全称Block Update Detector,利用的是游戏里方块更新延迟的机制。最简单的BUD就是用一个活塞推动一个粘液块,旁边放个红石比较器,当粘液块旁边的方块发生变化时,活塞会检测到并推动。我见过最经典的用法是自动门,当玩家走到压力板上,门下的BUD电路检测到压力板激活,然后推动门方块。但BUD有个毛病,它只在方块状态发生变化时才触发,如果你想把一个方块自动推走,得先让那个方块的位置被更新。所以很多老玩家会故意在电路里塞一个红石火把或者按钮,手动触发一次更新来激活BUD。后来观察者方块加入后,BUD就变得简单多了,观察者直接监测方块变化发出脉冲,可以说是自动推动的终极神器。
飞行器与黏着机制。
提到自动推动,就不能不说飞行器。飞行器这种东西本质上是两个粘性活塞互相推来推去,配合粘液块或者蜂蜜块带着玩家或者方块一起移动。我第一次造飞行器的时候,被那种“推着推着突然散架”的情况气得够呛。后来才知道关键是粘液块和蜂蜜块的黏着范围,它们能粘住相邻的方块,但移动的过程中必须保证每个部分都能被同时推动。最简单的单方向飞行器只需要一个观察者检测前方的方块变化,然后激活它身后的活塞,活塞推动粘液块上的方块,这样循环往复。如果你想让它自动转向,就得加一个中继器延时和一个红石火把,让活塞在到达边界时弹回来。这玩意儿看起来简单,但调试起来真考验耐心,尤其是做多排飞行器,每一排的时序必须精确到刻,否则就会卡住。
实用自动化建筑案例。
在生存模式里,我最拿手的就是用自动推动造刷石机和自动农场。刷石机的原理是让活塞反复推动圆石,同时用水和岩浆生成新的圆石,然后被另一个活塞推走。这里面要控制好脉冲频率,太快了圆石还没生成就被推走了,太慢了效率低。我的方案是用一个观察者检测圆石生成瞬间,然后触发一个单刻脉冲推动活塞,这样每次正好推走一个。自动农场更简单,用粘性活塞推动水,让水流冲掉作物,然后活塞再拉回水。难点在于如何让活塞只在水源方块下方推动,我一般用比较器检测作物成熟,然后激活一个BUD电路推动水。这些装置看起来复杂,其实核心就是那几个基础电路,如果你能理解脉冲时序和方块更新,任何自动推动的机器都能自己设计出来。
红石时序与版本差异。
最后得提醒一句,不同版本的MC对红石时序的处理不一样。比如1.12以前,活塞的推动速度是固定的,但1.13之后加入了准连通性,推动逻辑改了很多。我自己在1.16版本做飞行器时遇到的毛病就是,以前能用的脉冲电路在新版里会无限更新导致崩溃。所以你要想玩自动推动,最好先摸清当前版本的特性。观察者方块在1.13之后不再是简单的BUD替代品,它能输出两刻的信号,这个细节很多教程都不提。如果你发现自己的活塞不动了,先检查是不是旁边的红石粉充能状态不对,或者把中继器调小一档。自动推动没有标准答案,每个玩家的世界都有自己的走线风格,这也正是红石最有魅力的地方。
相关文章